package br.unifor.mia.aes.adventure.acoes;

import br.unifor.mia.aes.adventure.entidades.JogoAtual;
import br.unifor.mia.aes.adventure.entidades.Mundo;
import br.unifor.mia.aes.adventure.entidades.Sala;

public class AcoesFachada implements Acoes {

	private AcoesFachada() {
	}

	public static AcoesFachada getInstance() {
		if (instancia == null) {
			instancia = new AcoesFachada();
		}
		return instancia;
	}
	
	@Override
	public void andar(Integer destino) {
		JogoAtual.getInstance().getJogador().moverJogadorParaSala(destino);
	}

	@Override
	public void descreverEstadoAtual() {
		AcoesGerais.getInstance().descreverEstadoAtual();
	}

	@Override
	public void pegarItemDaSala(Integer item) {
		JogoAtual.getInstance().getJogador().pegarItemDaSala(item);
	}

	@Override
	public void carregarJogo(String nomeJogo) {
		AcoesGerais.getInstance().carregarJogo();
	}

	@Override
	public void salvarJogo() {
		AcoesGerais.getInstance().salvarJogo();
	}

	@Override
	public void iniciarJogo() {
		AcoesGerais.getInstance().iniciarJogo();
	}

	@Override
	public void criarJogador(String nome) {
		AcoesGerais.getInstance().criarJogador(nome);
	}
	private static AcoesFachada instancia;


	@Override
	public void negarJogadorSala(Integer salaId) {
		Sala sala = (Sala) Mundo.getInstance().getObjetoComId(salaId);
		sala.negarJogador(JogoAtual.getInstance().getJogador());
	}

	@Override
	public void mudarCapacidadeSala(Integer idSala, Integer qtd) {
		Sala sala = (Sala) Mundo.getInstance().getObjetoComId(idSala);
		sala.mudarCapacidade(qtd);
	}

	@Override
	public void escolherJogador(Integer idJogador) {
		AcoesGerais.getInstance().escolherJogador(idJogador);
	}

	@Override
	public void listarJogadores() {
		AcoesGerais.getInstance().listarJogadores();
	}


}
